var name = "why"


// js运行流程：编译阶段、执行阶段
// 函数定义也是声明的一种形式，会提前编译，即：预编译
foo(321)
function foo(num) {
  console.log(a)
  var a = 10;
  var b = 20;
  // var name = "foo"
  // 变量查找规则：沿着作用域链来进行查找
  /* 例如：
    先在本地作用域内进行变量的查找
    其次在父级作用域进行查找
    会一直往上找，直到找到为止，找不到就报错
  */ 
  console.log("foo:" + name)
  function foo_inner() {
    console.log("inner:" + name)
  }
  foo_inner()
}
foo(3123)

var num1 = 20
var num2 = 30
var result = num1 + num2

// 在VO里面的GO找到
// console.log(window)

